Kernel Equivalence of Programs and Proving Kernel Equivalence and Correctness by Test Cases

نویسنده

  • Terrence W. Pratt
چکیده

The statements in a program may be classi­ fied as "kernel statements" if they participate d i rect ly in the computation of some output and as "control statements" if they participate di rect ly in deciding the control path at branch points. Two programs are kernel equivalent if they always execute identical sequences of kernel statements given the same inputs. Kernel equivalence is defined formally and is shown to be pract ical ly decidable in many cases by a procedure of trying test cases. The concept of program kernel may also be used as a basis for proving correctness of programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Formal Verification of Programs and Their Transformations

Formal verification is an act of using formal methods to check the correctness of intended programs. The verification is done by providing a formal proof on an abstract mathematical model of the program, with respect to a certain formal specification or property. We present three case studies on using formal methods to verify programs and their transformations: (1) we use term rewriting and the...

متن کامل

Polynomial-time kernel reductions

Today, the computational complexity of equivalence problems such as the graph isomorphism problem and the Boolean formula equivalence problem remain only partially understood. One of the most important tools for determining the (relative) difficulty of a computational problem is the many-one reduction, which provides a way to encode an instance of one problem into an instance of another. In equ...

متن کامل

An Algebraic Definition of Simulation Between Programs

A simulation relation between programs is defined which is quasi-ordering. Mutual simulation is then an equivalence relation, and by dividing out by it we abstract from a program such details as how the sequencing is controlled and how data is represented. The equivalence classes are approximations to the algorithms which are -*. realized, or expressed, by their member programs. A technique is ...

متن کامل

Proving program refinements and transformations

In this thesis we develop a theory of program refinement and equivalence which can be used to develop practical tools for program development, analysis and modification. The theory is based on the use of general specifications and an imperative kernel language. We use weakest preconditions, expressed as formulae in infinitary logic to prove refinement and equivalence between programs. The kerne...

متن کامل

Proving the Correctness of Unfold/Fold Program Transformations Using Bisimulation

This paper shows that a bisimulation approach can be used to prove the correctness of unfold/fold program transformation algorithms. As an illustration, we show how our approach can be use to prove the correctness of positive supercompilation (due to Sørensen et al). Traditional program equivalence proofs show the original and transformed programs are contextually equivalent, i.e., have the sam...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1971